package me.sdevil507.systemAssist.systemUserWorkSapce.mapper;

import me.sdevil507.systemAssist.systemUserWorkSapce.dto.SystemUserWorkSpaceDTO;
import me.sdevil507.systemAssist.systemUserWorkSapce.po.SystemUserWorkSpacePO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingTarget;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @program: tips_back_end
 * @description:
 * @author: kzl
 * @create: 2021-7-12 15:04:26
 **/
@Component
@Mapper(componentModel = "spring")
public interface SystemUserWorkSpaceMapper {


    /**
     * po => dto
     *
     * @param po 实体类
     * @return dto传输类
     */
    SystemUserWorkSpaceDTO po2dto(SystemUserWorkSpacePO po);

    /**
     * pos => dtos
     *
     * @param pos 实体类集合
     * @return dtos传输类集合
     */
    List<SystemUserWorkSpaceDTO> pos2dtos(List<SystemUserWorkSpacePO> pos);

    /**
     * dto => po
     *
     * @param dto 传输类
     * @return po实体类
     */
    SystemUserWorkSpacePO dto2po(SystemUserWorkSpaceDTO dto);

    /**
     * dtos => pos
     *
     * @param dtos 传输类集合
     * @return pos实体类集合
     */
    List<SystemUserWorkSpacePO> dtos2pos(List<SystemUserWorkSpaceDTO> dtos);

    /**
     * 使用dto更新po
     *
     * @param dto 传输类
     * @param po  实体类
     */
    @Mapping(target = "createTime", ignore = true)
    void updatePoFromDto(SystemUserWorkSpaceDTO dto, @MappingTarget SystemUserWorkSpacePO po);
}
